/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package src.j2ee.compumake.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import src.j2ee.compumake.dominio.Marca;

/************************************************************************
 **                                                                    **
 ** Nombre: DAOMarca.java                                              **
 ** Version: v1.0.0                                                    **
 ** Autor: amado.cante                                                 **
 ** Creado: 20/04/2013                                                 **
 ** Modificado:                                                        **
 ** Diagrama:                                                          **
 ** Caso de uso:                                                       **
 **                                                                    **
 ***********************************************************************/
public class DAOMarca {
    private static final String TABLA_MARCAS = "Marcas";
    private static final String ID_MARCA = "idMarca";
    private static final String MARCA = "marca";
    private Connection conexion;
    private AccesoBaseDatos acceso = new AccesoBaseDatos();
    
    public DAOMarca(){
        this.conexion = acceso.abrirConexion();
    }
    
    public Marca buscaMarca(int idMarca){
        if(existeMarca(idMarca)){
            try{
                Statement sentencia = conexion.createStatement();
                sentencia = acceso.crearSentenciaBD(conexion);
                String query = "SELECT * FROM "+TABLA_MARCAS+" WHERE "+ID_MARCA+"='"+idMarca+"';";
                ResultSet resultado = sentencia.executeQuery(query);
                if(resultado.next()){
                 int id = resultado.getInt("idMarca");
                 String nombreMarca = resultado.getString("marca");
                 Marca marca = new Marca(id,nombreMarca);
                 return marca;
                }else{
                    return null;
                }            
            }catch(SQLException sqlex){
                System.out.println("ex: "+sqlex);
                return null;
            }
        }else{
            return null;
        }
    }
    
    private boolean existeMarca(int idMarca){
        try{
            Statement sentencia = conexion.createStatement();
            sentencia = acceso.crearSentenciaBD(conexion);
            String query = "SELECT * FROM "+TABLA_MARCAS+" WHERE "+ID_MARCA+"='"+idMarca+"';";
            ResultSet resultado = sentencia.executeQuery(query);
            if(resultado.next()){
                return true;
            }else{
                return false;
            }            
        }catch(SQLException sqlex){
            return false;
        }
    }
    
    public ArrayList<Marca> listarMarcas(){
        ArrayList<Marca> marcas = new ArrayList<>();
        try{
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            String query = "SELECT * FROM "+TABLA_MARCAS;
            ResultSet resultado = sentencia.executeQuery(query);
            while(resultado.next()){
                int clave = resultado.getInt(1);
                String nombre = resultado.getString(2);
                Marca m = new Marca(clave, nombre);
                marcas.add(m);
            }
            return marcas;
        }catch(SQLException ex){
            return marcas;
        }finally{
            acceso.cerrarConexion(conexion);
        }
    }
}
